// const {defineConfig} = require('@vue/cli-service')
const path = require("path");
const fs = require("fs");
const resolve = (dir) => path.join(__dirname, '.', dir);
const  cssmin = require('cssmin')
const  CompressionWebpackPlugin = require('compression-webpack-plugin')

console.log(path.join(__dirname, '/public/css.css'))
const css = fs.readFileSync(path.join(__dirname, '/public/css.css'),'utf8');
fs.writeFile(path.join(__dirname, '/public/css.min.css'), cssmin(css),(r)=>{
    console.log('public/css.css 被压缩',r)
});

module.exports = {
    productionSourceMap: false,
    publicPath: process.env.NODE_ENV === 'development' ? '/' : './',
    outputDir: 'dist',
    devServer: {
        port: 80,
        historyApiFallback: true,
        allowedHosts:"all",
        // 代理跨域的配置
        proxy: {
            // 当我们的本地的请求 有/api的时候，就会代理我们的请求地址向另外一个服务器发出请求
            '/api': {
                target: 'http://data.microseed.finance/', // 跨域请求的地址，这里不用写api
                changeOrigin: true // 只有这个值为true的情况下 才表示开启跨域
            }
        }
    },
    chainWebpack(config) {
        config.resolve.alias
            .set('@', resolve('src'))
            .set('api', resolve('src/apis')).set('common', resolve('src/common'))
        config.plugins.delete('prefetch');//默认开启prefetch(预先加载模块)，提前获取用户未来可能会访问的内容 在首屏会把这十几个路由文件，都一口气下载了 所以我们要关闭这个功能模块
        if (process.env.NODE_ENV !== 'development') {
            // 对超过10kb的文件gzip压缩
            config.plugin('compressionPlugin').use(
                new CompressionWebpackPlugin({
                    test: /\.(js|css|html)$/,// 匹配文件名
                    threshold: 10240,
                })
            );
            config.plugin('webpack-bundle-analyzer')
                .use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin)
        }
    },
}
